<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
</head>
<body>
  <script>
    const arr = [1, 2, [3, [4, 5], 6], 7, [8, 9, [10]]];

    // 1.使用flat
    const arr1 = arr.flat(Infinity) // 使用Infinity，可展开任意深度的嵌套数组
    console.log(arr1);

    // 2.使用toString
    const arr2 = arr.toString().split(',').map(Number)
    console.log(arr2);

    // 3.使用join
    const arr3 = arr.join().split(',').map(Number)
    console.log(arr3);

    // 4.使用递归
    function myFlat(arr) {
      let res  = []
      arr.forEach(value => {
        if (Array.isArray(value)) {
          res = [...res, ...myFlat(value)]
        } else {
          res.push(value)
        }
      })
      return res
    }
    console.log(myFlat(arr));
//----------------------------------------------------------------------------------------------    
    // 练习区：
    
    
  </script>
</body>
</html>